# Methods added to this helper will be available to all templates in the application.
module ApplicationHelper
  def logged_in?
    return true if session[:user]
    return false

  end

  def menu
    menu_text = ""
    if logged_in?
      ejecutivo = Ejecutivo.find(session[:user])

      menu_text = ejecutivo.nombre_completo
      menu_text << '<br />'

      case ejecutivo.puesto_id
      when 1,2,3,4,5,7
        menu_text << menu_operacion
      when 6,8,9
        menu_text << menu_administracion
      end
    end

  end

  def menu_operacion
    menu_text = ''
    if mando_medio?
      menu_text << link_to('Autorizaciones Pendientes', :controller => '/autorizar')
      menu_text << '<br />'
      
    end
    menu_text << link_to('Centros de Consumo', :controller => '/centro')
    menu_text << '<br />'
    menu_text << link_to('Corporativos', :controller => '/corporativos')
    menu_text << '<br />'
    menu_text << link_to('Convenios', :controller => '/convenio')
    menu_text << '<br />'
    menu_text << link_to('Concurso por Ventas', :controller => 'concurso/venta')
    menu_text << '<br />'
    menu_text << link_to('Concurso por Premios', :controller => 'concurso/premio')
    menu_text << '<br />'
    menu_text << link_to('Concurso por Objetivos', :controller => 'concurso/objetivo')
    menu_text << '<br />'
    menu_text << link_to('Materiales y Presencias', :controller => '/presencia')
    menu_text << '<br />'
    menu_text << link_to('Promociones', :controller => '/promocion')
    menu_text << '<br />'
    
    if mando_medio? || perfil_asistente?
      menu_text << link_to("Requisici&oacute;n de Producto", :controller => '/requisicion')
      menu_text << '<br />'
      menu_text << link_to('Almacenes', :controller => '/almacen')
      menu_text << '<br />'
    end
    
    menu_text << link_to('Movimientos de Almacen', :controller => '/movimiento')
    menu_text << '<br />'
    menu_text << link_to('Bienes en Comodato', :controller => '/comodato')
    menu_text << '<br />'
    menu_text << link_to('Impresi&oacute;n de Ordenes de Salida', :controller => '/salida')
    menu_text << '<br />'
    menu_text << link_to('Salidas de Material', :controller => '/material')
    menu_text << '<br />'
    menu_text << link_to('Pago de Bonificaciones', :controller => '/salida/bonificacion', :action => 'new')
    menu_text << '<br />'
    menu_text << link_to('Ejecutivos', :controller => '/personal/ejecutivo')
    menu_text << '<br />'
    menu_text << link_to('Presupuesto', :controller => '/presupuesto')
    menu_text << '<br />'
    menu_text << link_to('Reportes', 'http://sinprd/crn', :popup => true)
    menu_text << '<br />'
    menu_text << link_to("Salir", :controller => '/login', :action => 'signoff')
  end

  def menu_administracion
    menu_text = ''
    menu_text << link_to("Cat&aacute;logos", :controller => '/catalogo')
    menu_text << '<br />'
    menu_text << link_to("Empresas", :controller => '/empresa')
    menu_text << '<br />'
    menu_text << link_to("Categor&iacute;as", :controller => '/categoria')
    menu_text << '<br />'
    menu_text << link_to("Familias", :controller => '/familia')
    menu_text << '<br />'
    menu_text << link_to("Marcas", :controller => '/marca')
    menu_text << '<br />'
    menu_text << link_to("Almacenes", :controller => '/almacen')
    menu_text << '<br />'
    menu_text << link_to("Productos", :controller => '/producto')
    menu_text << '<br />'
    menu_text << link_to("Ejecutivos", :controller => '/personal/ejecutivo')
    menu_text << '<br />'
    menu_text << link_to("Centros de Consumo", :controller => '/centro')
    menu_text << '<br />'
    menu_text << link_to('Corporativos', :controller => '/corporativos')
    menu_text << '<br />'
    menu_text << link_to('Convenios', :controller => '/convenio')
    menu_text << '<br />'
    menu_text << link_to("Mayoristas", :controller => '/mayorista')
    menu_text << '<br />'
    menu_text << link_to("Captura", :controller => '/factura')
    menu_text << '<br />'
    menu_text << link_to("Presupuestos", :controller => '/presupuesto', :action => 'list_all')
    menu_text << '<br />'
    menu_text << link_to("Salir", :controller => '/login', :action => 'signoff')
  end

  def breadcumb
    r = []
    r << "Inicio"
    url = request.path.split('?')
    segments = url[0].split('/')
    segments.shift
    segments.each_with_index do |segment, i|
      title = segment.gsub(/-/, ' ').titleize
      r << link_to_if(false,title, "/" +
          (0..(i)).collect{|seg| segments[seg]}.join("/"))
    end
    return content_tag("div", r.join(" &#187; "), :class => "breadcrumbs")
  end

  def perfil_admin?
    admin_id = Catalogo.valor_id('Puestos Ejecutivos', 'Administrador Sistema')
    
    if session[:user]
      ejecutivo = Ejecutivo.find(session[:user])
      
      ejecutivo.puesto_id == admin_id
    else
      false
    end
  end

  def perfil_asistente?
    asistente = Catalogo.valor_id('Puestos Ejecutivos', 'Asistente')
    
    if session[:user]
      usuario = Ejecutivo.find(session[:user])
      
      usuario.puesto_id == asistente
    else
      false
    end
  end

  def mando_medio?
    gerente_id = Catalogo.valor_id('Puestos Ejecutivos','Gerente CDC')
    jefe_grupo_id = Catalogo.valor_id('Puestos Ejecutivos','Jefe de Grupo')
    gerente_op_id = Catalogo.valor_id('Puestos Ejecutivos','Gerente OP')
    
    if session[:user]
      ejecutivo = Ejecutivo.find(session[:user])
      
      ejecutivo.puesto_id == gerente_id || ejecutivo.puesto_id == jefe_grupo_id || ejecutivo.puesto_id == gerente_op_id
    else
      false
      
    end
  end
  
  def nombre_evento_salida(orden)
    nombre = ""
    
    case orden.tipo_referencia
    when OrdenSalida::TIPO_REFERENCIA[:evaluacion]
      referencia_documento = Evaluacion.find(orden.referencia_id)
      nombre = referencia_documento.concurso.nombre
      
    when OrdenSalida::TIPO_REFERENCIA[:presencia]
      referencia_documento = Presencia.find(orden.referencia_id)
      nombre = referencia_documento.nombre
      
    when OrdenSalida::TIPO_REFERENCIA[:promocion]
      referencia_documento = Promocion.find(orden.referencia_id)
      nombre = referencia_documento.nombre
      
    when OrdenSalida::TIPO_REFERENCIA[:bonificacion_especie]
      nombre = "Bonificacion en Especie"
      
    else
      nombre = "S/R"
      
    end
    
    nombre
  end
  
  def gerente?
    gerente_id = Catalogo.valor_id('Puestos Ejecutivos','Gerente CDC')
    gerente_op_id = Catalogo.valor_id('Puestos Ejecutivos','Gerente OP')
    
    if session[:user]
      ejecutivo = Ejecutivo.find(session[:user])
      
      ejecutivo.puesto_id == gerente_id || ejecutivo.puesto_id == gerente_op_id
    else
      false
      
    end
    
  end
  
end
